function init_cart() {
    // fix icon black/white at tab switching
    var icons = $('#cart-nav').find('i');
    $('a[data-toggle="pill"]').on('click', function(e) {
        icons.removeClass('icon-white');
        $(this).find('i').addClass('icon-white');
    });

    // below are for cart
    $('#checkout-modal-cancel').click(function(e) {
        e.preventDefault();
        $('#checkout-modal').modal('hide');
    });

    $('#reserve-modal-cancel').click(function(e) {
        e.preventDefault();
        $('#reserve-modal').modal('hide');
    });

    $('#payoff-modal-cancel').click(function(e) {
        e.preventDefault();
        $('#payoff-modal').modal('hide');
    });

    function show_checkout_modal() {
        var modal = $('#checkout-modal');
        modal.find('.alert').hide();
        $.getJSON('/shop/check-deposit?for=checkout', function(data) {
            if(data.not_enough) {
                modal.find('.alert').show();
            }
            modal.find('.total-price').html(data.total.toFixed(2));
            modal.modal('show');
        });
    }

    function show_reserve_modal() {
        var modal = $('#reserve-modal');
        modal.find('.alert').hide();
        $.getJSON('/shop/check-deposit?for=reserve', function(data) {
            if(data.not_enough) {
                modal.find('.alert').show();
            }
            modal.find('.total-price').html(data.total.toFixed(2));
            modal.modal('show');
        });
    }

    function show_payoff_modal(pk) {
        $('#payoff-modal-confirm').attr('href', '/shop/payoff/'+pk);
        var modal = $('#payoff-modal');
        modal.find('.alert').hide();
        $.getJSON('/shop/check-deposit?for=payoff&pk='+pk, function(data) {
            if(data.not_enough) {
                modal.find('.alert').show();
            }
            modal.find('.total-price').html(data.total.toFixed(2));
            modal.modal('show');
        });
    }

    $('#checkout').click(function(e) {
        e.preventDefault();
        show_checkout_modal();
    });

    $('#reserve').click(function(e) {
        e.preventDefault();
        show_reserve_modal();
    });

    $('.pay-off').click(function(e) {
        e.preventDefault();
        var pk = $(this).data('pk');
        show_payoff_modal(pk);
    });
}
